package com.yuanqi.service;

import com.yuanqi.domain.PaymentApproval;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

public interface PaymentApprovalService {
    
    // 分页查询付款审批
    Page<PaymentApproval> getPaymentApprovals(String applicant, String status, String applyDate, Pageable pageable);
    
    // 根据ID获取付款审批
    PaymentApproval getPaymentApprovalById(Long id);
    
    // 创建付款审批
    PaymentApproval createPaymentApproval(Map<String, Object> approvalData);
    
    // 批量创建付款审批
    List<PaymentApproval> createBatchPaymentApprovals(List<Map<String, Object>> approvalDataList);
    
    // 更新付款审批
    PaymentApproval updatePaymentApproval(Long id, Map<String, Object> approvalData);
    
    // 审批付款申请（通过）
    PaymentApproval approvePayment(Long id, String approver, String approvalRemark);
    
    // 审批付款申请（拒绝）
    PaymentApproval rejectPayment(Long id, String approver, String approvalRemark);
    
    // 删除付款审批
    void deletePaymentApproval(Long id);
    
    // 生成审批编号
    String generateApprovalCode();
    
    // 获取统计信息
    Map<String, Object> getApprovalStatistics();
}
